The present invention pertains to interface protocols, and more particularly to priority messaging in a serial protocol.
A variety of devices are known that include components, such as microprocessors, microcontrollers, digital signal processors, logic devices, peripherals, or the like, which communicate via a serial bus. Such devices include personal computers such as lap top and desk top computers, communication devices such cellular telephones, multiple application phones, personnel digital assistants, palm top computers, computer peripherals, and the like. For these devices, the components and the serial bus may be internal or external to the device.
Regardless of the application of the serial bus, protocols are often employed to frame data into discrete messages, or packets, by which data is transmitted over the serial bus. Additionally, such data links employ interconnects other than the serial transmit and receive wires to accommodate flow command signaling. If the number of interconnects is limited to a transmit and receive line, separate lines for flow control are not available. Accordingly, flow control has been included as part of the framing protocol.
When a framing protocol is applied to a serial bus, a trade-off is made between the maximum allowable latency for the link and the maximum allowable packet length. The longer the packet length, the longer the latency of the system to a message communication. For example, consider a link in which each byte requires 1 millisecond for transmission, and the maximum packet length is 100 bytes. If a high priority packet is submitted for transmission just after transmission of the first byte of a 100 byte packet is initiated, the system must wait a full second before the priority message can be sent.
One solution is to break up messages into packets small enough to accommodate the latency requirements for priority messaging, and then reassemble the packets into a complete message upon reception at the other end before passing the message on for processing. For example, by reducing the size of the packets to a maximum of 10 bytes, the priority message can be inserted with a latency of only 10 milliseconds. However, this adds a considerable amount of overhead in constructing longer messages and reassembling them. This can slow down the receive processing of the messages. Additionally there are numerous error conditions which can occur because of the complexity of such a system. Consequently, the protocols to implement such a solution increase overhead, increase the chances of error, and are fairly complex to implement.
Accordingly, there is a need for an improved protocol for accommodating priority messages which does not negatively impact on the performance of the communication protocol.